//package com.ruoyi.web.controller.keno.service;
//
//
//import com.ziyeibin.dao.entity.KenoEntity;
//import com.ziyeibin.dao.entity.KenoForecastEntity;
//import com.ziyeibin.dao.mapper.KenoEntityMapper;
//import com.ziyeibin.dao.mapper.KenoForecastEntityMapper;
//import com.ziyeibin.dto.KenoDto;
//import org.apache.http.HttpEntity;
//import org.apache.http.ParseException;
//import org.apache.http.client.ClientProtocolException;
//import org.apache.http.client.methods.CloseableHttpResponse;
//import org.apache.http.client.methods.HttpGet;
//import org.apache.http.impl.client.CloseableHttpClient;
//import org.apache.http.impl.client.HttpClients;
//import org.apache.http.util.EntityUtils;
//import org.apache.logging.log4j.LogManager;
//import org.apache.logging.log4j.Logger;
//import org.json.JSONObject;
//import org.springframework.stereotype.Repository;
//
//import javax.annotation.Resource;
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
//
///**
// * Created by ziyeibin on 2016/9/16.
// */
//@Repository
//public class KenoService {
//
//    @Resource
//    KenoEntityMapper kenoEntityMapper;
//
//    @Resource
//    KenoForecastEntityMapper kenoForecastEntityMapper;
//
//    private static Logger logger = LogManager.getLogger(KenoService.class.getName());
//
//    static List<KenoDto> kenoList = new ArrayList<KenoDto>(20);
//    final static String url = "http://www.1396klc.com/issuehistory/historyList?lotteryCode=";
//    final static String urls = "&issue_no=0&date=&pageIndex=1&pageSize=20&t=";
//    final static String urlResult = "&date=&pageIndex=1&pageSize=20&t=";
//    Long tempNum = 0l;
//    Long kaijiang = 0l;
//
//
//    public void getDataAcquistion(String code) {
//
//        CloseableHttpClient httpclient = HttpClients.createDefault();
//        try {
//            // 创建httpget.
//            HttpGet httpget = new HttpGet(url + code + urls + System.currentTimeMillis());
//            httpget.setHeader("User-Agent", "Chrome/50currentTimeMillis()0.2661.102");
//            CloseableHttpResponse response = httpclient.execute(httpget);
//            try {
//                HttpEntity entity = response.getEntity();
//                if (entity != null) {
//                    // 打印响应内容
//                    //           System.out.println("Response content: " + EntityUtils.toString(entity, "gb2312"));
//                    JSONObject json = new JSONObject(EntityUtils.toString(entity, "gb2312"));
//                    JSONObject json1 = json.getJSONObject("Data");
//                    org.json.JSONArray jsonArr = json1.getJSONArray("rows");
//                    kenoList.clear();
//                    for (int i = 0; i < 20; i++) {
//                        JSONObject j = jsonArr.getJSONObject(i);
//                        Long t = j.getLong("IssueNo");
//                        if (t.longValue() == tempNum.longValue())
//                            return;
//
//                        KenoDto keno = new KenoDto(j.getLong("IssueNo"), j.getString("Result"));
//                        if (i == 0) {
//                            tempNum = t;
//                            KenoEntity e = new KenoEntity(j.getLong("IssueNo"), j.getString("Result"), code);
//                            kenoEntityMapper.insert(e);
//                        }
//
//                        kenoList.add(keno);
//
//
//                    }
//                    KenoDto keno = validationBig(kenoList);
//                    if (keno != null) {
//                        kaijiang = keno.getIssueNo();
//                        logger.info("<-------------------------------------------->");
//                        logger.info(keno.getIssueNo() + "--" + keno.getBig() + "--" + keno.getEight() + "--" + keno.getLu());
//                        KenoForecastEntity kf = new KenoForecastEntity();
//                        kf.setArea(code);
//                        kf.setDx(keno.getBig() ? (byte) 0 : 1);
//                        kf.setCreated(new Date());
//                        kf.setForecastType(keno.getLu().byteValue());
//                        kf.setIssueNo(keno.getIssueNo());
//                        kenoForecastEntityMapper.insert(kf);
//                    }
//
//                }
//            } catch (Exception e) {
//                e.printStackTrace();
//            } finally {
//                response.close();
//            }
//        } catch (ClientProtocolException e) {
//            e.printStackTrace();
//        } catch (ParseException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        } finally {
//            // 关闭连接,释放资源
//            try {
//                httpclient.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//    public void getResultAcquistion() {
//        List<KenoForecastEntity> dataList = kenoForecastEntityMapper.selectNullResult();
//        CloseableHttpClient httpclient = HttpClients.createDefault();
//        for (KenoForecastEntity kenoForecast : dataList) {
//            try {
//                // 创建httpget.
//                HttpGet httpget = new HttpGet(url + kenoForecast.getArea() + "&issue_no=" + kenoForecast.getIssueNo() + urlResult + System.currentTimeMillis());
//                httpget.setHeader("User-Agent", "Chrome/50currentTimeMillis()0.2661.102");
//                CloseableHttpResponse response = httpclient.execute(httpget);
//                try {
//                    // 获取响应实体
//                    HttpEntity entity = response.getEntity();
//                    if (entity != null) {
//                        // 打印响应内容
//                        //           System.out.println("Response content: " + EntityUtils.toString(entity, "gb2312"));
//                        JSONObject json = new JSONObject(EntityUtils.toString(entity, "gb2312"));
//                        JSONObject json1 = json.getJSONObject("Data");
//                        org.json.JSONArray jsonArr = json1.getJSONArray("rows");
//                        JSONObject j = jsonArr.getJSONObject(0);
//                        KenoEntity keno = new KenoEntity(j.getLong("IssueNo"), j.getString("Result"), kenoForecast.getArea());
//                        if(keno.getDx()==kenoForecast.getDx())
//                            kenoForecast.setResult(true);
//                        else
//                            kenoForecast.setResult(false);
//                        kenoForecastEntityMapper.updateByPrimaryKey(kenoForecast);
//                    }
//                } catch (Exception e) {
//                    e.printStackTrace();
//                } finally {
//                    response.close();
//                }
//            } catch (ClientProtocolException e) {
//                e.printStackTrace();
//            } catch (ParseException e) {
//                e.printStackTrace();
//            } catch (IOException e) {
//                e.printStackTrace();
//            } finally {
//                // 关闭连接,释放资源
//                try {
//                    httpclient.close();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }
//        }
//    }
//
//
//    private KenoDto validationBig(List<KenoDto> kenoList) {
//
//        //测试
////        if (kenoList.get(0).getBig() && kenoList.get(1).getBig()) {
////            return new KenoDto(kenoList.get(0).getIssueNo() + 1, kenoList.get(0).getBig(), kenoList.get(0).getEight(),0);
////        }
//
//
//        //连续五行相同
//        if (kenoList.get(1).getWuxing().equals(kenoList.get(2).getWuxing())) {
//            if (kenoList.get(3).getWuxing().equals(kenoList.get(4).getWuxing())) {
//                if (!kenoList.get(0).getWuxing().equals("水") && (!kenoList.get(1).getWuxing().equals("水") || kenoList.get(3).getWuxing().equals("水"))) {
//                    return new KenoDto(kenoList.get(0).getIssueNo() + 1, kenoList.get(0).getBig(), kenoList.get(0).getEight(), 1);
//                }
//            }
//        }
//
//        //连续五行木火木火
//        if (kenoList.get(1).getWuxing().equals(kenoList.get(3).getWuxing()) && (kenoList.get(1).getWuxing().equals("木") || kenoList.get(1).getWuxing().equals("金"))) {
//            if (kenoList.get(2).getWuxing().equals(kenoList.get(4).getWuxing()) && (kenoList.get(2).getWuxing().equals("火") || kenoList.get(2).getWuxing().equals("土"))) {
//                if (kenoList.get(0).getWuxing().equals("火") || kenoList.get(0).getWuxing().equals("土"))
//                    return new KenoDto(kenoList.get(0).getIssueNo() + 1, false, false, 2);
//            }
//        }
//        if (kenoList.get(1).getWuxing().equals(kenoList.get(3).getWuxing()) && (kenoList.get(1).getWuxing().equals("火") || kenoList.get(1).getWuxing().equals("土"))) {
//            if (kenoList.get(2).getWuxing().equals(kenoList.get(4).getWuxing()) && (kenoList.get(2).getWuxing().equals("木") || kenoList.get(2).getWuxing().equals("金"))) {
//                if (kenoList.get(0).getWuxing().equals("木") || kenoList.get(0).getWuxing().equals("金"))
//                    return new KenoDto(kenoList.get(0).getIssueNo() + 1, true, false, 2);
//            }
//        }
//
//        //连续五行水火水火
//        if (kenoList.get(1).getWuxing().equals(kenoList.get(3).getWuxing()) && (kenoList.get(1).getWuxing().equals("木") || kenoList.get(1).getWuxing().equals("金"))) {
//            if (kenoList.get(2).getWuxing().equals(kenoList.get(4).getWuxing()) && kenoList.get(2).getWuxing().equals("水")) {
//                if (kenoList.get(0).getWuxing().equals("水"))
//                    return new KenoDto(kenoList.get(0).getIssueNo() + 1, false, false, 3);
//            }
//        }
//        if (kenoList.get(1).getWuxing().equals(kenoList.get(3).getWuxing()) && (kenoList.get(1).getWuxing().equals("火") || kenoList.get(1).getWuxing().equals("土"))) {
//            if (kenoList.get(2).getWuxing().equals(kenoList.get(4).getWuxing()) && kenoList.get(2).getWuxing().equals("水")) {
//                if (kenoList.get(0).getWuxing().equals("水"))
//                    return new KenoDto(kenoList.get(0).getIssueNo() + 1, true, false, 3);
//            }
//        }
//
//        //10个有7个大或小
//        int big = 0;
//        int small = 0;
//        for (int i = 0; i < 10; i++) {
//            if (!kenoList.get(i).getEight()) {
//                if (kenoList.get(i).getBig())
//                    big++;
//                else
//                    small++;
//            }
//        }
//        if (big >= 7 || small >= 7) {
//            KenoDto k = kenoList.get(0);
//            for (int i = 1; i < 20; i++) {
//                if (k.getWuxing().equals(kenoList.get(i).getWuxing())) {
//                    if (big >= 7 && (kenoList.get(i - 1).getWuxing().equals("火") || kenoList.get(i - 1).getWuxing().equals("土"))) {
//                        logger.info(kenoList.get(i - 1).getIssueNo() + "--" + kenoList.get(i - 1).getTotal());
//                        return new KenoDto(kenoList.get(0).getIssueNo() + 1, true, false, 4);
//
//                    }
//                    if (small >= 7 && (kenoList.get(i - 1).getWuxing().equals("木") || kenoList.get(i - 1).getWuxing().equals("金"))) {
//                        logger.info(kenoList.get(i - 1).getIssueNo() + "--" + kenoList.get(i - 1).getTotal());
//                        return new KenoDto(kenoList.get(0).getIssueNo() + 1, false, false, 4);
//                    }
//                    break;  //首个不符合，跳出
//                }
//
//            }
//        }
//
//        return null;
//    }
//
//    public static void main(String[] args) {
//        KenoService keno = new KenoService();
//        // keno.getDataAcquistion();
//    }
//
//}
